package br.com.ffm.praticas.projeto;

import java.util.HashMap;
import java.util.Map;

public class Email {
	
	private Map<String, Usuario> usuarios = new HashMap<String, Usuario>();
	
	public Usuario efetuarLogin(String email, String senha) 
			throws UsuarioInexistenteException, SenhaInvalidaException{
		
		Usuario usuario = this.usuarios.get(email);
		if (usuario == null) {
			throw new UsuarioInexistenteException("USUARIO INEXISTENTE\n");
		}
		if (usuario.verificaSenha(senha)) {
			return usuario;
		} else {
			throw new SenhaInvalidaException("SENHA INVALIDA\n");
		}
	}
	
	public void enviarMensagem(Mensagem msg) throws UsuarioInexistenteException{
		
		Usuario usuarioRemetente = this.usuarios.get(msg.getEmailRemetente());
		if (usuarioRemetente == null)
			throw new UsuarioInexistenteException("REMETENDE INEXISTENTE\n");
		Usuario usuarioDestinatario = this.usuarios.get(msg.getEmailDestinatario());
		if (usuarioDestinatario == null)
			throw new UsuarioInexistenteException("DESTINATARIO INEXISTENTE\n");
		
		usuarioRemetente.armazenaMensagem(msg);
		usuarioDestinatario.armazenaMensagem(msg);
		
	}
	
	public void addUsuario(Usuario usuario) {
		if (!this.usuarios.containsKey(usuario.getEnderecoEmail())){
			String email = usuario.getEnderecoEmail();
			this.usuarios.put(email, usuario);
		}
		else
			throw new IllegalArgumentException("CONTA DE EMAIL JA EXISTE!");
	}

}